Writing, or programming, a flash memory device is a complex operation. In general, an algorithm executes the writing of one byte or one word at a time in the device. Programming all or a large part of the memory can be quite time consuming. Such operations are often performed by the memory manufacturer as a part of the testing process. This ties the test equipment up for extended periods of time, slowing and adding to the cost of the manufacturing process.
For the end user, the length of time for programming typically has not been a concern. Applications generally have not written enough words to create a burden. However, as wireless web-based applications and third-generation cellular phone applications become increasingly popular, it may be required to write large blocks of the memory, e.g., downloading large MP3 files, web pages or the like.
For the reasons stated above, and for other reasons stated below that will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for alternative methods for programming flash memory devices.